#ifndef BROK_H_
#define BROK_H_

#include "../../SAMA_Function.h"

/*模块可调参数结构体*/
typedef struct {
	float STime[10];      //< 时间点
	float SOut[10];       //< 时间点对应的值
}BROK_Par_t;


/*模块运算中间参数结构体定义*/
typedef struct {
	float Run_Time;       //< 折线模块运行时间
}BROK_Sta_t;


/*模块参数结构体定义*/
struct BROK_T
{
	Model_Base_t Base;	 //< 模块基本参数结构体
	BROK_Par_t Par;		 //< 模块可调参数结构体
	BROK_Sta_t Sta;		 //< 模块运算中间参数结构体
};


extern BROK_T* BROK_t;

/*函数*/
bool CALCU_SAMA(BROK)(Model_Base_t* arg, float dt, bool* DI, bool* DO, float* AI, float* AO);	  //< SAMA运算函数
int BC_PARA(BROK)(Model_Base_t* arg, void** Data);											      //< 广播SAMA参数变量函数（无参数需要广播的模块直接将BCPara函数设置为NULL即可）
int BAK_STA(BROK)(Model_Base_t* arg, void** Data);											      //< 备份SAMA运算中间参数
int ANA_STA(BROK)(Model_Base_t* arg, void** Data);											      //< 解析备份的SAMA运算中间参数
int CHANGE_PAR(BROK)(Model_Base_t* arg, void** Data);											  //< 在线修改模块参数函数
void INIT_STAPAR(BROK)(Model_Base_t* arg);													      //< 初始化模块运算中间参数


#endif
